uniform sampler2D texUnit1;
uniform float pixelOffsetS;
uniform float pixelOffsetT;

void main(void)
{
    vec3 sum = vec3(0.0, 0.0, 0.0);
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2(-pixelOffsetS, -pixelOffsetT)).xyz;
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2(          0.0, -pixelOffsetT)).xyz * 2.0;
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2( pixelOffsetS, -pixelOffsetT)).xyz;
    
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2(-pixelOffsetS,           0.0)).xyz * 2.0;
    sum += texture2D(texUnit1, gl_TexCoord[0].st).xyz * 4.0;
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2( pixelOffsetS,           0.0)).xyz * 2.0;
    
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2(-pixelOffsetS,  pixelOffsetT)).xyz;
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2(          0.0,  pixelOffsetT)).xyz * 2.0;
    sum += texture2D(texUnit1, gl_TexCoord[0].st + vec2( pixelOffsetS,  pixelOffsetT)).xyz;

    gl_FragColor.xyz = sum / 16.0;
}
